;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Você deve fazer backup do WhatsApp agora mesmo; veja como

Márcio Padrão

Do UOL, em São Paulo

20/08/2018 12h23Atualizada em 03/06/2020 22h58

Os maníacos por WhatsApp do sistema Android ganharam um recurso muito bom para combater o armazenamento lotado do celular. O backup do mensageiro no Google Drive não vai mais contar para a cota do serviço na nuvem. Mas isso também vai significar que você precisa atualizar seu backup o quanto antes.

VEJA TAMBÉM:

Como era: os backups do WhatsApp para Android consomem parte da cota de armazenamento do Google Drive —que hoje é de 15 GB na versão gratuita (há também planos pagos que ampliam esta cota para 1 TB ou 100 TB). Quanto mais fotos e vídeos do WhatsApp você guarda, maior a fatia que ocupa na capacidade total do Drive.

Agora o backup do WhatsApp não vai mais abocanhar seus gigabytes livres no serviço do Google. Assim, tanto faz você ter 100 MB ou 1 GB de backup do WhatsApp: ele não fará mais diferença na redução do espaço livre de sua conta do Drive.

No iPhone nada mudou, já que nele o backup em nuvem é realizado só via iCloud. E nele, o conteúdo salvo do WhatsApp continua consumindo seu espaço livre no serviço da Apple.

Como fazer o backup pela nuvem

O WhatsApp fornece ao usuário duas formas de backup: manual, onde você mesmo é que terá a missão de se lembrar de fazer o backup às vezes; e automático, em que o app programa backups por intervalos de tempo determinados por você: todo dia, toda semana ou todo mês.

  • No Android, vá nos três pontinhos localizados no canto superior direito
  • Selecione "Configurações"
  • Procure o item "Conversas" e clique nele
  • Agora, abra a opção "Backup de conversas". Nesta tela, vá em "Configurações do Google Drive" e adicione sua conta do Google, clicando em "Conta" e escolhendo o e-mail de correto da sua conta
  • Em "fazer backup no Google Drive", você vai poder definir se deseja fazer um backup automático, entre as opções "diário", "semanal" ou "mensal". Se preferir a operação de backup manual, clique em "Apenas quando eu tocar em 'Fazer backup'" (botão que aparece com destaque verde nesta tela). Se nunca quiser backup no Drive, clique em "Nunca".
  • Uma vez configurado, já pode clicar no botão verde "Fazer backup". O app fará a cópia do backup na nuvem.

WhatsApp Android - backup1 - UOL - UOL
Imagem: UOL

WhatsApp Android - backup2 - UOL - UOL
Imagem: UOL

Os arquivos podem ser armazenados quando você estiver conectado no wi-fi ou no 3G/4G. Ainda nesta tela, clique em "Fazer backup em" e escolha se será "Wi-Fi" ou "Wi-Fi ou celular" (este consumirá seu plano de dados de internet móvel).

No fim da tela, você também pode optar se vai querer ou não incluir vídeos no backup. Lembre-se que vídeos consomem bastante megabytes de armazenamento —o que felizmente deixará de ser problema após o acordo com o Google começar a valer.

Como recuperar o backup pela nuvem

Para restaurar o backup, quando instalar o WhatsApp no celular novamente, basta utilizar a mesma conta do Google que você usou no backup anterior, e logado nessa conta no Google Play, baixe o WhatsApp.

Durante o processo de instalação do app, coloque o número de celular usado no backup anterior para logar. Ele reconhecerá o backup no Drive associado ao número e vai mostrar a mensagem "Backup encontrado". Nesta tela, clique no botão verde "Restaurar" e o app terminará a recuperação do backup.

Como fazer o backup sem a nuvem

É possível fazer o backup manual do WhatsApp para Android sem depender do Google Drive. Desta forma é um pouco mais complicada, mas vamos ensinar aqui.

Para fazer sem o Drive, vá até o WhatsApp e repita os primeiros os ditos acima. Clique no botão de menu (os três pontinhos verticais da página principal do app) > Configurações > Conversas > Backup de conversas.

Nesta tela, em "fazer backup no Google Drive", clique em "Nunca". E depois no botão verde "Fazer backup". O backup assim será atualizado, mas na memória do celular.

Neste caso, é importante você ter uma cópia deste backup em outro tipo de armazenamento físico.

Para isso, use um app gerenciador de arquivos para Android, e com ele, localize a pasta do WhatsApp (que fica na raiz do armazenamento, também chamado de "sdcard") e faça uma cópia dela para seu cartão MicroSD.

O processo é similar ao gerenciamento de pastas no Windows Explorer: selecione a pasta e escolha "copiar", depois entre na pasta raiz do cartão de memória e clique em "colar".

Outra alternativa é realizar essa cópia no armazenamento do seu computador ou laptop. Para isso, conecte o celular ao computador com Windows pelo cabo USB e faça essa transferência, arrastando a pasta do WhatsApp para dentro da pasta de sua preferência no PC.

Como recuperar o backup sem a nuvem

Para quem realizou com sucesso as etapas ditas acima, agora é a hora de fazer o inverso: trazer a pasta WhatsApp de volta ao seu celular novo. Faça os os abaixo antes de instalar o WhatsApp de novo.

Se o backup manual ficou no cartão MicroSD, coloque-o no celular novo, instale e use novamente um app gerenciador de arquivos. Depois copie e cole a pasta WhatsApp na raiz da memória principal (a "sdcard" mencionada acima).

Se o backup manual foi feito no PC ou laptop, ligue o celular ao computador de novo via cabo USB, abra a pasta raiz do armazenamento do celular, e arraste a pasta do WhatsApp salva no PC para dentro.

Nos dois casos, depois instale o WhatsApp normalmente e ele puxará o backup no final da instalação.